
package com.sailing.lianxi.design.observer;

import java.util.ArrayList;
import java.util.List;

/**
 * 
 * 类名称：Subject
 * 类描述：被观察者
 * 创建人：wanggang
 * 创建时间：2018年6月19日 下午2:58:46
 * 修改人：wanggang
 * 修改时间：2018年6月19日 下午2:58:46
 * 修改备注：
 */
public class Subject {

    private List<AbstractObserver> observers = new ArrayList<AbstractObserver>();
    
    private int state;
    
    /**
     * 
     * attach[订阅观察者]
     * 创建人:  wanggang
     * 创建时间: 2018年6月19日 下午3:05:58
     *
     * @Title: attach
     * @param observer
     * @since  CodingExample　Ver(编码范例查看) 1.1
     */
    public void attach(AbstractObserver observer){
        observers.add(observer);
    }

    
    public int getState() {
        return state;
    }

    
    public void setState(int state) {
        this.state = state;
        updateAllObserver();
    }
    
    /**
     * 
     * updateAllObserver[更新所有观察者]
     * 创建人:  wanggang
     * 创建时间: 2018年6月19日 下午3:08:00
     *
     * @Title: updateAllObserver
     * @since  CodingExample　Ver(编码范例查看) 1.1
     */
    public void updateAllObserver(){
        for (AbstractObserver obj : observers) {
            obj.update();
        }
    }
    
}

